Inductively Verifying Invariants of Rewriting Logic Specifications
نویسندگان
چکیده
We present a novel approach based on inductive theorem proving for verifying invariants of dynamic systems specified in rewriting logic, a formal specification language implemented in the Maude system. An invariant is a property that holds on all the states that are reachable from a given class of initial states. Our approach consists in encoding the semantic aspects that are relevant for our task (namely, verifying invariance properties of the specified systems) in membership equational logic, a sublogic of rewriting logic. The invariance properties are then formalized over the encoded rewrite theories and are proved using an inductive theorem prover for membership equational logic also implemented in the Maude system using its reflective capabilities. We illustrate our approach by verifying mutual exclusion properties of a readers-writers system and of an n-process version of the Bakery algorithm.
منابع مشابه
Combining Theorem Proving and Narrowing for Rewriting-Logic Specifications
We present an approach for verifying dynamic systems specified in rewriting logic, a formal specification language implemented in the Maude system. Our approach is tailored for invariants, i.e., properties that hold on all states reachable from a given class of initial states. The approach consists in encoding invariance properties into inductive properties written in membership equational logi...
متن کاملInductive Reasoning for Shape Invariants pdfsubject
Automatic verification of imperative programs that destructively manipulate heap data structures is challenging. In this paper we propose an approach for verifying that such programs do not corrupt their data structures. We specify heap data structures such as lists, arrays of lists, and trees inductively as solutions of logic programs. We use off-the-shelf first-order theorem provers to reason...
متن کاملVerifying Reachability-Logic Properties on Rewriting-Logic Specifications
Reachability Logic is a recently introduced formalism, which is currently used for defining the operational semantics of programming languages and for stating properties about program executions. In this paper we show how Reachability Logic can be adapted for stating properties of transition systems described by Rewriting-Logic specifications. We propose an automatic procedure for verifying Rew...
متن کاملRewriting Logic as a Framework for Building Generic Tools for Verifying Concurrent Systems
We present a method for constructing generic verification tools which can easily be adjusted towards different process algebras as well as different semantic models for concurrency. For this purpose we recall the basics of rewriting logic which serves as a uniform model for concurrency. Applying rewriting logic specifications, we explain how generic tools can be developed
متن کاملAsserting Memory Shape using Linear Logic
Contracts and assertions are accepted as an important method for improving software reliability. However, existing systems do not provide clean ways to describe conditions based on memory shape. We present a method for elegantly specifying memory shape invariants using specifications in linear logic and then dynamically verifying these specifications using the linear logic programming language ...
متن کامل